/*
  计算能力
  题目描述
    小 A 同学有着很强的计算能力，张老师为了检验小A同学的计算能力，写了一个 n 个数的数列。
    张老师问了小 A 同学 m 个问题，每个问题都是计算这个数列从第 x 个数开始到第 y 个数结束这个区间的所有数的和。
    请你编程帮助张老师计算出结果。
  输入
    第一行包含两个整数 n 和 m。
    第二行包含 n 个整数。
    接下来 m 行，每行包含两个整数 x 和 y 表示。

    数据范围
      1 ≤ x ≤ y ≤ n
      1 ≤ n, m ≤ 100000
      −1000 ≤ 数列中元素的值 ≤ 1000
  输出
    共 m 行，每行输出一个询问的结果。
  样例输入
    6 3
    1 3 6 5 4 2
    1 3
    2 5
    3 6
  样例输出
    10
    18
    17
*/

#include <bits/stdc++.h>

using namespace std;

long long a[100005] = {};  // 输入列表
long long d[100005] = {};  // 前缀和

int main() {
    long long n, m;
    cin >> n >> m;

    //输入 n 个数, 计算前缀和
    for (int i = 1; i <= n; i++) {
        cin >> a[i];
        d[i] = d[i - 1] + a[i]; // 提示: d[0] == 0
    }

    // 循环进行 m 轮处理
    for (int i = 1; i <= m; i++) {
        // 输入起点 x 和终点 y，计算并输出从 a[x] + a[x + 1] + ... + a[y] 的值
        int x, y;
        cin >> x >> y;
        cout << d[y] - d[x - 1] << endl;
    }

    return 0;
}